package com.yunxi.module.system.framework.sms.core.property;

import com.yunxi.module.system.framework.sms.core.enums.SmsChannelEnum;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 短信渠道配置属性
 * </p>
 *
 * @author lidy
 * @since 2024-05-19
 */
@Data
@Validated
@Accessors(chain = true)
public class SmsChannelProperties {

    /**
     * 渠道编号
     */
    @NotNull(message = "短信渠道 ID 不能为空")
    private Long id;

    /**
     * 短信签名
     */
    @NotEmpty(message = "短信签名不能为空")
    private String signature;

    /**
     * 渠道编码
     * <p>
     * 枚举 {@link SmsChannelEnum}
     */
    @NotEmpty(message = "渠道编码不能为空")
    private String code;

    /**
     * 短信 API 的账号
     */
    @NotEmpty(message = "短信 API 的账号不能为空")
    private String apiKey;

    /**
     * 短信 API 的密钥
     */
    @NotEmpty(message = "短信 API 的密钥不能为空")
    private String apiSecret;

    /**
     * 短信发送回调 URL
     */
    private String callbackUrl;

}
